#ifndef AREA_COORDS__
#define AREA_COORDS__

#include <list>
#include "base.h"
#include "area.h"
#include "options_coords.h"

/** Trida reprezentujici obecnou mapu. Teto mape se pozice anten a pocty vysilacu
 * na nich specifikuji v zadani problemu.
 */
class Coordinates: public Area {
public:
	/** Defaultni konstruktor. Zinicializuje zakladni tridu, precte z nastaveni pozice anten a nastavi je.
	 * \param o nastaveni obecne mapy
	 */
	Coordinates(Options * o): options((CoordinatesOptions *)o), Area(o) { 
		reuse_distances = options->reuse;
		reuse_size = options->reuse_size;
		setAntenaPositions();
	};
private:
	void setAntenaPositions();
	/** Vrati informace o nastaveni mapy.
	 * \return pocet anten a vysilacu na nich
	 */
	std::string getDetail() {
		return "Custom: " + IntToStr(options->antenas.size()) + " antenas, " + IntToStr(size) + " calls";
	}
	CoordinatesOptions * options;
};

#endif
